#ifndef LEAFCURVATURE_H
#define LEAFCURVATURE_H

#include "imagemask.h"

class LeafCurvature
{
public:
    inline static bool onBoundary(const cv::Mat& leaf_mask,int x,int y);
    static ImageMask boundary(const cv::Mat& leaf_mask);
    static std::vector<int> arclengthHistogram(const ImageMask& leaf_mask,float radius,int numberOfBins);
    static std::vector<int> areaHistogram(const ImageMask& leaf_mask,float radius,int numberOfBins);
    static std::vector<float> normalizedArclengthHistogram(const ImageMask& leaf_mask,float radius,int numberOfBins);
    static std::vector<float> normalizedAreaHistogram(const ImageMask& leaf_mask,float radius,int numberOfBins);

    static ImageMask circleTemplate(float radius);
    static ImageMask filledCircleTemplate(float radius);
};

#endif // LEAFCURVATURE_H
